草庐IT

转到 MUX Controller 返回 404

全部标签

ruby-on-rails - to_d 在 ruby​​ 中总是返回 2 个小数位

我正在处理货币,我想将数字向下舍入到小数点后两位。即使数字是500.0,我也希望它是500.00以保持一致。当我执行“500.00”.to_d时,它会将其转换为500.0。改变这种行为的好方法是什么?我还使用这种方法向下舍入到2位数字,并确保它始终有2位小数。defself.round_down(x,n=2)s=x.to_sl=s.index('.')?s.index('.')+1+n:s.lengths=s[0,l]s=s.index('.')?s.length-(s.index('.')+1)==1?s 最佳答案 除了mcfin

ruby - 在 Ruby 中, 'new' 和 'initialize' 之间的关系是什么?初始化时如何返回nil?

我想要的是:obj=Foo.new(0)#=>nilorfalse这行不通:classFoodefinitialize(val)returnnilifval==0endend我知道在C/C++/Java/C#中,我们不能在构造函数中返回值。但我想知道在Ruby中是否可行。 最佳答案 InRuby,what'stherelationshipbetween'new'and'initialize'?new通常调用initialize。new的默认实现类似于:classClassdefnew(*args,&block)obj=allocat

ruby - 为什么显式返回会影响 Proc?

deffoof=Proc.new{return"returnfromfoofrominsideproc"}f.call#controlleavesfooherereturn"returnfromfoo"enddefbarb=Proc.new{"returnfrombarfrominsideproc"}b.call#controlleavesbarherereturn"returnfrombar"endputsfoo#prints"returnfromfoofrominsideproc"putsbar#prints"returnfrombar"我以为return关键字在Ruby中是可选的

ruby-on-rails - 如何在 Rails Controller 中返回 HTTP 204

这看起来很基础,但我是Ruby/Rails初学者。我只需要在Controller中返回HTTP204。会respond_todo|format|format.htmlend返回204? 最佳答案 head:no_content使用Rails3.2.x、4.x测试。它会导致Controller方法以204NoContentHTTP状态代码进行响应。在名为foobar的Controller方法中使用它的示例:deffoobarhead:no_contentend 关于ruby-on-rail

ruby-on-rails - 按日期(或任何其他列)对 ActiveRecord 返回的数组进行排序

如何根据created_at日期列对ActiveRecord查询返回的数组进行排序?一旦执行了查询,就会发生这种情况。请不要告诉我在查询中执行此操作,因为我需要在View中执行此操作。 最佳答案 Ruby包括开箱即用的排序支持。sorted=@records.sort_by&:created_at但是,这似乎与显示没有太大关系,可能属于Controller。 关于ruby-on-rails-按日期(或任何其他列)对ActiveRecord返回的数组进行排序,我们在StackOverflo

ruby - Ruby 中的返回点是什么?

return和只放置如下变量有什么区别:不返回defwrite_code(number_of_errors)ifnumber_of_errors>1mood="Askmelater"elsemood="NoProblem"endmoodend返回defwrite_code(number_of_errors)ifnumber_of_errors>1mood="Askmelater"elsemood=puts"NoProblem"endreturnmoodend 最佳答案 return让你早点突破:defwrite_code(numbe

ruby - 我怎样才能从 block 中提前返回一些东西?

如果我想做这样的事情:collection.eachdo|i|returnnilifi==3..manylinesofcodehere..end我怎样才能得到那种效果?我知道我可以用一个大的if语句将block内的所有内容包装起来,但我想尽可能避免嵌套。Break在这里不起作用,因为我不想想要停止剩余元素的迭代。 最佳答案 block内的next从block返回。block内的break从屈服于该block的函数返回。对于each这意味着break退出循环并且next跳转到循环的下一次迭代(因此名称)。您可以使用nextvalue和

ruby - Ruby 如何返回两个值?

每当我交换数组中的值时,我都会确保将其中一个值存储在引用变量中。但是我发现Ruby可以返回两个值,也可以自动交换两个值。例如,array=[1,3,5,6,7]array[0],array[1]=array[1],array[0]#=>[3,1]我想知道Ruby是如何做到这一点的。 最佳答案 与其他语言不同,Ruby中任何方法调用的返回值始终是一个对象。这是可能的,因为就像Ruby中的所有内容一样,nil本身就是一个对象。您将看到三种基本模式。不返回特定值:defnothingendnothing#=>nil返回一个奇异值:defs

ruby-on-rails - 如果字符串为空则返回一些默认值

我经常需要检查某些值是否为空,然后像这样写“没有数据”:@user.address.blank??"Wedon'tknowuser'saddress":@user.address当我们有大约20-30个字段需要以这种方式处理时,它就变得丑陋了。我所做的是使用或方法扩展String类classStringdefor(what)self.strip.blank??what:selfendend@user.address.or("Wedon'tknowuser'saddress")现在看起来好多了。但它仍然是原始和粗糙的如何更好地解决我的问题。也许扩展ActiveSupport类或使用辅助方

ruby - 返回 Ruby 正则表达式的第一个匹配项

我正在寻找一种在Ruby中对字符串执行正则表达式匹配并使其在第一个匹配项时短路的方法。我正在处理的字符串很长,从标准方式(match方法)来看,它会处理整个字符串,收集每个匹配项,并返回一个包含所有匹配项的MatchData对象。match=string.match(/regex/)[0].to_s 最佳答案 你可以试试String#[](如variableName[/regularexpression/])。这是IRB的示例输出:names="erikkallejohananderserikkallejohananders"#=>